﻿using System.Collections.Generic;

namespace Algoritmia.DataStructures.Trees
{
    public interface IRootedTree<T> 
    {
        T Root { get; }
        IEnumerable<T> Successors(T node);
        IEnumerable<T> Predecessors(T node);
        int InDegree(T node);
        int OutDegree(T node);
        IEnumerable<IRootedTree<T>> SubTrees();
        IRootedTree<T> Tree(T root);
    }
}
